Database Design for Smarties: Using UML for Data Modeling
نویسنده
چکیده
and Concrete Classes and Inheritance Another recap: remember that an abstract class is one that has no instances, while a concrete class is one that can have instances. An interface is an abstract class that has no attributes and that contains only abstract operations. The more general case of the abstract class may have both. Abstract classes are meaningless without generalization relationships. What good, for example, would the Identification class be as an abstract class without its subclasses? Since you can't instantiate an object of the class, the only reason for its existence is to set up the common properties of its concrete subclasses for inheritance when you instantiate their objects.classes are meaningless without generalization relationships. What good, for example, would the Identification class be as an abstract class without its subclasses? Since you can't instantiate an object of the class, the only reason for its existence is to set up the common properties of its concrete subclasses for inheritance when you instantiate their objects. Abstract classes represent the opportunity to express intermediate concepts in your semantic hierarchy, such as ExpiringID. You create abstract classes when you see common properties that make sense as a cohesive cluster of behavior. Sometimes this corresponds to an easily understood object, and sometimes it doesn't. If it doesn't, check and double-check your design to make sure you're not introducing too much abstraction. Simpler is better, and the shallower you keep your inheritance hierarchy the better. Note An interface is an abstract class, but not all abstract classes are interfaces. While you can't have methods implementing operations in an interface, you can in an abstract class that is not an interface. This lets you share common behavior in concrete subclasses.classes represent the opportunity to express intermediate concepts in your semantic hierarchy, such as ExpiringID. You create abstract classes when you see common properties that make sense as a cohesive cluster of behavior. Sometimes this corresponds to an easily understood object, and sometimes it doesn't. If it doesn't, check and double-check your design to make sure you're not introducing too much abstraction. Simpler is better, and the shallower you keep your inheritance hierarchy the better. Note An interface is an abstract class, but not all abstract classes are interfaces. While you can't have methods implementing operations in an interface, you can in an abstract class that is not an interface. This lets you share common behavior in concrete subclasses. What is the place of abstract classes in a data model? The abstract class gives you a place to put attributes and operations that you would otherwise spread around many classes. You are reducing redundancy by centralizing the implementation of these objects. When the design translates into the database schema, the lower redundancy will usually result in a more flexible schema. You may see more complexity in relational schemas because of the extra tables, but you will see fewer normalization problems and easier table management and maintenance. Multiple Inheritance Classes can have more than one more general parent superclass. If this is part of your design, you are using multiple inheritance. The world is full of such things, in reality, because the human mind imposes classification on the world, not vice versa. Humans are, if nothing else, inconsistent and complex, and we can find endless ways to classify things. Our thinking tends to overlap—good for thought, lousy for software system design.
منابع مشابه
UML Specification of Relational Database
Database reverse engineering (DBRE) recovers a database design using a semantic data model. Most of the existing works and tools for DBRE and database design specify relational database schemas with extended ER models. The Unified Modeling Language (UML) is a standard language for modeling software and database systems. We discuss how to extend the UML metamodel with elements for modeling relat...
متن کاملModeling fuzzy information in UML class diagrams and object-oriented database models
Conceptual data modeling has become essential for non-traditional application areas. Some conceptual data models have been proposed as tools for database design and object-oriented database modeling. Information in real-world applications is often vague or ambiguous. Currently, a little research is underway on modeling the imprecision and uncertainty in conceptual data modeling and the conceptu...
متن کاملOn Mapping Between UML and Entity-Relationship Model
Nowadays, the Entity-Relationship Model (ERM) is the most important and widely used method for modeling data and designing databases. On the other hand, the Uniied Modeling Language (UML) is expected to become more and more popular in object-oriented analysis and design (OOA/OOD). As a by-product of OOA/OOD, a database design can be derived by mapping of objects to entities. The purpose of this...
متن کاملUML and XML Schema
XML is rapidly becoming the standard method for sending information across the Internet. XML Schema, since its elevation to W3C Recommendation on the 2 May 2001, is fast becoming the preferred means of describing structured XML data. However, until recently, there has been no effective means of graphically designing XML Schemas without exposing designers to low-level implementation issues. Bird...
متن کاملUML dialect for designing object-relational databases
The market trends indicate that the next generation database technology will be dominated by object-relational systems. This shift to the new technology calls for visual modeling techniques to facilitate the design of object-relational database systems. Even though Unified Modeling Language (UML) is not currently equiped to manage this task, it can be extended for it.The paper defines design co...
متن کاملAn object relational database for hypermedia systems
interface design Abstract interface objects, responses to external events, interface transformations Abstract data views configuration diagrams ADV-charts design patterns Mapping between navigation and perceptible objects. Composition and generalization/ specialization Model perceptible objects, implementing chosen metaphors, describe interface for navigational objects define lay-out of interfa...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 1999